package NetWork;

import java.io.IOException;
import java.net.SocketException;
import java.util.HashMap;
import java.util.Map;

public class UdpDictServer extends UdpEchoServer{
    //实现一个英文词典的服务器
    private Map<String,String> dict = new HashMap<>();
    /**
     * 对于服务器来说,创建socket对象的同时,要给他绑定一个具体的端口号
     * 服务器一定要关联一个具体的端口号
     * 服务器是网络传输中被动的一方,如果是操作系统随机分配的端口,此时客户端就不知道这个端口号是什么了,也就无法进行通信了
     */
    public UdpDictServer(int port) throws SocketException {
        super(port);

        //给这个dict设置内容(可以无限设置)
        dict.put("teacher","老师");
        dict.put("bird","鸟");
        dict.put("hello","你好");

    }
    //重写这个process就能让server调用start的时候,调用里面的process时,根据多态,调用子类重写的方法了
    @Override
    public String process(String request) {
        return dict.getOrDefault(request,"无法翻译这个单词!!!");
    }

    public static void main(String[] args) throws IOException {
        UdpDictServer server = new UdpDictServer(9090);
        server.start();
    }
}
